package com.clstu.generic;

public class CustomGeneric {
    public static void main(String[] args) {
        new Tiger("hell0");
    }

}
class Tiger<T,R,M>{//泛型的标识符可以有多个，一般大写
    String name;

    //T[] ts=new T[];泛型的数组不能初始化，因为类型不确定所以就不能确定到底给它分配多少的空间
    T t;
    //public static T t;,泛型不能用static修饰，因为泛型在创建对象的时候才知道类型
     //而static修饰的变量在类加载的时候就要给出，就不知道具体什么类型
    R r;
    M m;

    public Tiger(String name) {
        this.name = name;
    }

    public Tiger(String name, T t, R r, M m) {
        this.name = name;
        this.t = t;
        this.r = r;
        this.m = m;
    }

    public String getName() {//方法也可以使用泛型
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

//    public static T getT() {//用泛型的函数不能用static修饰，原因参考上面注释
//        return t;
//    }

    public void setT(T t) {
        this.t = t;
    }

    public R getR() {
        return r;
    }

    public void setR(R r) {
        this.r = r;
    }

    public M getM() {
        return m;
    }

    public void setM(M m) {
        this.m = m;
    }
}